/**
 * 文件名：AppEntity.java
 * 功能：应用程序数据库实体类
 * 作用：对应数据库 t_app 表，存储应用程序的完整信息
 * 模块关系：
 *   - 被 AppMapper 使用：作为 MyBatis 查询结果的映射对象
 *   - 被 AppController 使用：从数据库查询得到，然后转换为 AppVO 返回前端
 *   - 与 AppMapper.xml 对应：通过 resultMap 映射数据库字段到 Java 属性
 * 作者：白永康
 * 学号：2501210209
 */
package com.example.demo.app.entity;

import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.AllArgsConstructor;

import java.math.BigDecimal;
import java.time.LocalDate;

/**
 * 应用程序实体类
 * 对应数据库表 t_app，包含应用的所有字段信息
 * 使用 Lombok 注解自动生成 getter/setter、构造方法等
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
public class AppEntity {
    /** 应用 ID，主键 */
    private Long id;
    
    /** 应用名称 */
    private String name;
    
    /** 简短描述 */
    private String description;
    
    /** 详细描述（对应数据库字段 full_description） */
    private String fullDescription;
    
    /** 应用头像/图标 URL */
    private String avatar;
    
    /** 应用分类（如：工具、娱乐、教育等） */
    private String category;
    
    /** 价格（使用 BigDecimal 保证精度） */
    private BigDecimal price;
    
    /** 评分（0.0-5.0） */
    private Double rating;
    
    /** 下载量 */
    private Integer downloads;
    
    /** 评论数 */
    private Integer reviews;
    
    /** 作者/开发者 */
    private String author;
    
    /** 发布时间（对应数据库字段 published_at） */
    private LocalDate publishedAt;
}
